AWS GlueStudioを使用してDynamoDBからS3にデータを移動してみた。
AWS Glue Studioとは?
AWS Glue Studioはグラフィカルインターフェイスです。AWS Glue Studioを使用して、AWS GlueでETLジョブの作成、実行、およびモニタリングをすることができます。データ変換ワークフローを視覚的に作成することができます。
ジョブには3つの部分があります:
- Source - ソースはAWS Glue Data Catalog, S3, Kinesis, Kafka, RDS, Redshift, DynamoDB, MYSQL, PostgreSQL, Oracle SQL, SQL Serverにすることができます
- Transform - Join, Drop, Select, Rename, Split, Filter, Aggregate, SQL などいろいろな変換を実行できます。
- Target - AWS Glue Data Catalog, S3, Redshift, MYSQL, PostgreSQL, Oracle SQL, SQL Server。
この記事では、AWS GlueStudioとAWS GlueCrawlerを使用してDynamoDBからS3にデータを移動してみました。
やってみた
S3バケットの作成
- S3 コンソールで、Create bucketを選択します。
- バケット名を入力して、S3バケットを作成しておきます。
DynamoDBの作成
- DynamoDBコンソールで、Create Tableを選択しておきます。
- テーブル名とPartition Keyを入力して、DynamoDBテーブルを作成しておきます。
- テーブルを作成した後、テーブルにデータを追加しておきます。
Crawlerの作成
Databaseの作成
- AWS Glueのコンソールで、左のナビゲーションペインでDatabase を選択しておきます。
- Add Databaseを選択して、データベース名を入力して、データベースを作成しておきます。
Crawlerの作成
- 左のナビゲーションペインでTables を選択して、Add tables using a crawlerを選択しておきます。
- クローラの名前を入力して、[Next]をクリックおきます。
- Crawler source typeでData storesを選択しておきます。
- データソースとしてDynamoDBを選択して、以前に作成したDynamoDBテーブルを選択しておきます。
- IAMロールで[Create an IAM role]を選択しておきます。
- スケジュールでRun on demandを選択しておきます。
- Databaseで以前に作成したデータベースを選択しておきます。設定を確認して、クローラを作成しておきあます。
- クローラを作成した後、クローラを実行しておきます。エラーなしで実行が完了したことをみることができます。
AWS Glue Studioの作成
- 以下のポリシーを作成します。これにより、Glue StudioがS3とDynamoDBにアクセスできるようになります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:Scan" ], "Resource": [ "arn:aws:dynamodb:us-east-1:account-id:table/dynamodb-table*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name", "arn:aws:s3:::bucket-name/*" ] } ] }
- この設定でIAMロールを作成しておきます。
- 信頼されたエンティティの種類 : AWS のサービス
- ユースケース : Glue
- ポリシー : 前の手順で作成したポリシーの名前
- AWS Glueのコンソールで、左のナビゲーションペインでAWS Glue Studio を選択しておきます。
- [Create and manage jobs]で [View jobs]をクリックしておきます。
- この設定でJobsを作成しておきます。
- Visual with a source and target
- Source : Amazon DynamoDB
- Target : Amazon S3
- ソース設定で、前に作成したデータベースとテーブルを選択しておきます。
- Transformで、必要に応じて変換できます。データフィールドを削除し、ターゲットキー名を変更してみました。
- ターゲット設定:
- Format : CSV
- S3 Target Location : 以前に作成されたS3バケットのURL。
- ジョブの名前を入力して、以前に作成したIAMロールを選択して、[Save]をクリックしておきます。
- ジョブを保存した後、ジョブを実行しておきます。
- ジョブが正常に実行された後、データがS3に移動されていることを確認できます。
- コンソールでは、ジョブのモニタリングを確認できます。
まとめ
AWS Glue StudioとAWS Glue Crawlerを使用してDynamoDBからS3にデータを移動してみました。他のソースやターゲットで試すこともできます。
Reference : Glue Studio